Permission Accounting in Separation Logic ( extended abstract )
نویسندگان
چکیده
Separation logic began by describing total separation between the heap space used by separate parts of a program. It has moved on to consider how total and partial permissions to access heap elements can be transferred between concurrent threads. The roots of the new approach are in Boyland’s [3] demonstration of the utility of fractional permissions in reasoning about programs. We add the notion of counting permission, which mirrors the programming technique called permission counting. Both fractional and counting permissions permit passivity, the specification that a program can be permitted to access a heap cell yet prevented from altering it. Models of both mechanisms are described. The use of two different mechanisms is defended. Some interesting problems are acknowledged and some intriguing possibilities for future development are paraded.
منابع مشابه
Separation Logic Contracts for a Java-Like Language with Fork/Join
We adapt a variant of permission-accounting separation logic to a concurrent Java-like language with fork/join. To support both concurrent reads and information hiding, we combine fractional permissions with abstract predicates. As an example, we present a separation logic contract for iterators that prevents data races and concurrent modifications. Our program logic is presented in an algorith...
متن کاملTemporary Read-Only Permissions for Separation Logic
We present an extension of Separation Logic with a general mechanism for temporarily converting any assertion (or “permission”) to a read-only form. No accounting is required: our read-only permissions can be freely duplicated and discarded. We argue that, in circumstances where mutable data structures are temporarily accessed only for reading, our read-only permissions enable more concise spec...
متن کاملModels and Separation Logics for Resource Trees
In this paper, we propose a new data structure, called resource tree, that is a node-labelled tree in which nodes contain resources which belong to a partial monoid. We define the resource tree model and a new separation logic (BI-Loc) that extends the Bunched Implications logic (BI) with a modality for locations. In addition we consider quantifications on locations and paths and then we study ...
متن کاملPermission-Based Separation Logic for Message-Passing Concurrency
We develop local reasoning techniques for message passing concurrent programs basedon ideas from separation logics and resource usage analysis. We extend processes with permission-resources and define a reduction semantics for this extended language. This provides a foundationfor interpreting separation formulas for message-passing concurrency. We also define a sound proofsystem...
متن کاملChapter 1 An Overview
Separation logic is a novel system for reasoning about imperative programs. It extends Hoare logic with enriched assertions that can describe the separation of storage and other resources concisely. The original goal of the logic was to facilitate reasoning about shared mutable data structures, i.e., structures where updatable fields can be referenced from more than one point. More recently, th...
متن کامل